/* 
 * File:   QueryModifierBase.hpp
 * Author: Faisal
 *
 * Created on April 27, 2012, 8:39 PM
 *
 * Description:
 *		The base class interface for the Query modifier
 *
 */

#ifndef HQueryModifierBase_Common

#define HQueryModifierBase_Common

#include "Shared.hpp"
#include "FilterType.hpp"
#include "boost\any.hpp"
#include "BusinessBase.hpp"
#include "ParameterInfo.hpp"

using Supetronix::PersistO::Common::BusinessBase;

using std::vector;
using std::shared_ptr;

namespace Supetronix
{
	namespace PersistO
	{
		namespace Common
		{
			class QueryModifierBase
			{
			public:
				virtual QueryModifierBase* addFilter(FilterType filterType, const std::string& columnName, boost::any data) = 0;
				virtual QueryModifierBase* addParameter(const std::string& parameterName, boost::any data) = 0;
				virtual shared_ptr<vector<ParameterInfo>> getParameterList() const = 0;
			};
		}
	}
}

#endif